package com.example.hello.service;

import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface FileStorageService {
    
    /**
     * 上传文件到对象存储
     * @param file 文件
     * @param directory 目录
     * @return 文件访问URL
     */
    String uploadFile(MultipartFile file, String directory) throws IOException;
    
    /**
     * 批量上传文件
     * @param files 文件列表
     * @param directory 目录
     * @return 文件名和URL的映射
     */
    Map<String, String> uploadFiles(List<MultipartFile> files, String directory) throws IOException;
    
    /**
     * 删除文件
     * @param fileUrl 文件URL
     * @return 是否删除成功
     */
    boolean deleteFile(String fileUrl);
    
    /**
     * 生成临时访问URL
     * @param objectKey 对象键
     * @param expirationMinutes 过期时间（分钟）
     * @return 临时访问URL
     */
    String generatePresignedUrl(String objectKey, int expirationMinutes);
} 